近期將依些老程式轉移至微服務上,
因為原本程式使用了大量 out 語法,
為了能夠讓微服務的 API 回傳所以將回傳格式改為 Tuple 以便一次回傳多個不同類型的值,
正常來說應該是新增一個 ViewModel 來回傳,
不過因為趕時程所以用最小的改動來做,
微服務是以 .NetCore3.1 實作的,
回傳格式原本是以下面這格式回傳:
(List<model> lst, string str)
但是實際回傳至原本程式卻發現接收到的都是空白,
拜請估狗大神後,
發現 C# 7.0 這種 Tuple 語法糖的變數命名在編譯後並不會保留 lst、str 這些變數名稱,
導致在 API 回傳 Json 轉換時,
無法對應到變數名稱導致回傳空白。
解決方法為:
將原本括號寫法的 Tuple 再做一次轉換
(value1, value2).ToTuple()
接下來到接收端就可以以原本 item1、item2 的方式接收了。
不過還是建議都已定義好的 model 做為回傳格式會是較好的方式